/* 
 * File:   p_queue.h
 * Author: dev
 *
 * Created on March 15, 2011, 8:15 PM
 */

#ifndef P_QUEUE_H
#define	P_QUEUE_H

#ifdef	__cplusplus
extern "C" {
#endif

#define MAX_QUEUE_LIMIT 250

struct p_queue
{
     uint8_t *          packet; 
     unsigned int       len;
     struct p_queue*    next;
     struct p_queue*    prev;
};

void queue_packet(struct sr_if*, uint8_t*,unsigned int);
void check_queue(struct sr_instance*, struct sr_if*);
void drop_packets(struct sr_if*, struct in_addr*);
struct p_queue* drop_singl_packet(struct sr_if*, struct p_queue*);
int check_queue_status(struct sr_if*, struct in_addr* );

#ifdef	__cplusplus
}
#endif

#endif	/* P_QUEUE_H */

